﻿using Microsoft.AspNetCore.Mvc;

namespace Common.DataModels
{
    public class BaseApiController:ControllerBase
    {
        /// <summary>
        /// 普通操作的返回
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        [NonAction]
        public MessageModel<T> Success<T>(T data, string msg = "成功")
        {
            return MessageModel<T>.Success(msg,data);
        }
        /// <summary>
        /// 分页查询的返回
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <param name="count"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        [NonAction]
        public MessageModel<T> Success<T>(T data,int count ,string msg = "成功")
        {
            return MessageModel<T>.Success(msg, data,count);
        }
        [NonAction]
        public MessageModel Success(string msg = "成功")
        {
            return new MessageModel()
            {
                msg = msg
            };
        }
        [NonAction]
        public MessageModel Fail(string msg = "失败")
        {
            return new MessageModel()
            {
                msg = msg,
                code = 500,
                success = false
            };
        }
        [NonAction]
        public MessageModel<T> Fail<T>(string msg = "失败", int code = 500)
        {
            return MessageModel<T>.FailWithCode(default(T),code,msg);
        }

    }
}
